﻿# -*- encoding:UTF-8 -*-
from sqlobject import *

from turbogears import identity 
from turbogears.database import PackageHub
from datetime import datetime

hub = PackageHub("chamachama")
__connection__ = hub


# class YourDataClass( SQLObject ):
#     pass

class Chamado( SQLObject ):
    # Dados da pessoa que fez o chamado
    nomePessoa = IntCol( notNone=True )
    idInfocentro = IntCol( notNone=True )
    
    # Dados do chamado
    idCategoria = IntCol( notNone=True )
    idSubCategoria = IntCol( notNone=True )
    titulo = UnicodeCol( notNone=True )
    descricao = UnicodeCol( notNone=True )
    
    # Gestão do chamado
    donoOriginal = IntCol( notNone=True )   # id do atendente/dono original
    donoAtual = IntCol( notNone=True )      # id do atual dono, da pessoa que está com o chamado
    idGrupo = IntCol( notNone=True )        # grupo ao qual pertence o chamado atualmente
    status = UnicodeCol( notNone=True )     # texto com o status
    
    # Datas do chamado
    dataCriacao = UnicodeCol( notNone=True )
    dataUltimaAtualizacao = UnicodeCol( notNone=True )

class HistoricoChamado( SQLObject ):
    # O Historico do chamado é uma série de strings
    # , na verdade, são atualizações do chamado ordenadas
    # por data, para termos um acompanhamento de onde o chamado
    # está e com quem está atualmente.
    textoAtualizacao = UnicodeCol( notNone=True )
    dataAtualizacao = UnicodeCol( notNone=True )
    autorAtualizacao = UnicodeCol( notNone=True )
    idChamado = IntCol( notNone=True )
    donoChamado = IntCol( notNone=True )

class Infocentro( SQLObject ):
    # Infocentros cadastrados, no nosso sistema só precisamos, realmente
    # do nome, do telefone e do e-mail do infocentro.
    nome = UnicodeCol( notNone=True )
    telefone = UnicodeCol( notNone=True )
    email = UnicodeCol( notNone=True )

class ContatoInfocentro( SQLObject ):
    # Cadastro de monitores e gestores.
    nome = UnicodeCol( notNone=True )
    cargo = UnicodeCol( notNone=True )
    idInfocentro = IntCol( notNone=True )

class Categoria( SQLObject ):
    # Cadastro de categorias principais.
    nome = UnicodeCol( notNone=True )

class SubCategoria( SQLObject ):
    # Cadastro de subcategorias
    idCategoria = IntCol( notNone=True )
    nome = UnicodeCol( notNone=True )

class Usuario( SQLObject ):
    # Controle dos usuários (atendentes) do sistema
    # :)
    nome = StringCol( notNone=True )
    senha = StringCol( notNone=True )
    idGrupo = IntCol( notNone=True )
    
class Grupo( SQLObject ):
    # Grupos de usuários.
    nome = UnicodeCol( notNone=True )